package com.zzh.lib.protector;

/**
 * Created by ZZH on 2/1/21.
 *
 * @Date: 2/1/21
 * @Email: zzh_hz@126.com
 * @QQ: 1299234582
 * @Author: zzh
 * @Description: 防止被调试，解决方案。
 * <p>
 * 1、TracerId 是否为0，非0 则是被调试。
 * <p>
 * 2、
 */
public class ZHAppSafe {
    static {
        NDKUtil.loadLibraryByName("zh_safe_guard");
    }

    /**
     * 检测TracerId 是否为空
     *
     * @param exit 是否直接退出程序。
     * @return 0 程序App执行成功。
     */
    public native static int startSafePrevent(boolean exit, ZHCheckSafeCallback callback);

    /**
     * 检测android_server 是否启动。检测端口号
     *
     * @return 0 程序App执行成功
     */
    public native static int startSafePreventServer(boolean exit, ZHCheckSafeCallback callback);

    /**
     * 检测android_server 是否启动。检测端口号
     *
     * @return 0 程序App执行成功
     */
    public native static int startSafePreventPathServer(boolean exit, String path, ZHCheckSafeCallback callback);


    /**
     * 在C层直接退出程序，避免Java层面的System.exit、android.os.Process.killProcess方法被hook了，无法退出程序
     *
     * @return 0 执行正常
     */
    public native static int safeKillSelfServer();
}
